﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient;

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Acciones iniciales para verificar usuario loggeado y visibilidad de menus
        var master = Master as SiteMaster;
        if (master != null)
        {
            master.AccionesIniciales();
        }
        //verificar si el usuario es valido
        var rol = (Int32)Page.Session["rol"];
        if (rol == null)
        {
            Response.Redirect("About.aspx");
        }


        //dropDepartamento.Items.Clear();
        if (dropDepartamento.Items.Count <= 0)
        {
            DepartmentManager departmentService = new DepartmentManager();
            List<string> departments = departmentService.ObtenerDepartamentos();

            foreach (string department in departments)
            {
                dropDepartamento.Items.Add(department);
            }
        }
        ServiciosManager serviciosManager = new ServiciosManager();
        List<string> servicios = serviciosManager.ObtenerServicios(1);

        foreach (string servicio in servicios)
        {
            divDrop.Items.Add(servicio);
        }

    }

    protected void cargarServicios(object sender, EventArgs e)
    {
       
    }

    protected void divDrop_SelectedIndexChanged(object sender, EventArgs e)
    {

        divDrop.Items.Clear();
        ServiciosManager serviciosManager = new ServiciosManager();
        List<string> servicios = serviciosManager.ObtenerServicios(dropDepartamento.SelectedIndex + 1);

        foreach (string servicio in servicios)
        {
            divDrop.Items.Add(servicio);
        }
    }

    protected void enviar(object sender, EventArgs e)
    {
        Solicitud solicitud = new Solicitud();
        Mail mail = new Mail();

        DepartmentManager departmentManager = new DepartmentManager();
        MailManager mailManager = new MailManager();
        SolicitudesManager solicitudesManager = new SolicitudesManager();
        UsersManager userManager = new UsersManager();

        solicitud.Departamento = dropDepartamento.SelectedItem.Value;
        solicitud.Tipo = divDrop.SelectedItem.Value;
        solicitud.FechaEnvio = new DateTime();
        solicitud.Estado = 1;
        solicitud.FechaAceptada = new DateTime();
        solicitud.Motivo = TextBox1.Text;
        var usuarioId = ((System.Int32)Page.Session["userId"]).ToString();
        solicitud.EnviadaPorId = long.Parse(usuarioId);
        solicitud.RecibidaPorId = departmentManager.ObtenerJefeDeDepartamento(dropDepartamento.SelectedItem.ToString());

        if (check1.Checked)
            solicitud.Urgencia = 1;
        else
            solicitud.Urgencia = 0;

        solicitudesManager.GuardarSolicitud(solicitud);

        mail.Asunto = "Solicitud de servicio enviada";
        mail.Contenido = "Se realizo la peticion del servicio: \n\n" + divDrop.SelectedItem.Value + ". \n\nComentarios: \n\n";
        mail.Contenido += TextBox1.Text+" \n\n";
        if (check1.Checked)
            mail.Contenido = "Y con calidad de urgente";
        else
            mail.Contenido = "Y con urgencia baja";
        mail.FechaEnvio = new DateTime();
        mail.Para = userManager.ObtenerMail(solicitud.RecibidaPorId);
        mail.De = userManager.ObtenerUsuario(solicitud.EnviadaPorId);
        mail.DeId = solicitud.EnviadaPorId;
        mail.ParaId = solicitud.RecibidaPorId;

        mailManager.MandarMail(mail);
        mail.ParaId = solicitud.EnviadaPorId;
        mail.Para = userManager.ObtenerMail(solicitud.EnviadaPorId);
        mailManager.MandarMail(mail);

        Type cstype = this.GetType();
        // Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = Page.ClientScript;

        // Check to see if the startup script is already registered.
        if (!cs.IsStartupScriptRegistered(cstype, "PopupScript"))
        {
            String cstext = "alert('Mensaje enviado');";
            cs.RegisterStartupScript(cstype, "PopupScript", cstext, true);
           
        }
        check1.Checked = false;
        TextBox1.Text = String.Empty;
    }
  

      
    
}